package com.xiaoyu.lib_av.datamodel.message

import androidx.annotation.StringDef

object AVRoomMessageType {

    const val SYSTEM = "system"
    const val WARNING = "warning"
    const val ACTION = "action"
    const val TEXT = "text"
    const val INVALID = ""

    @StringDef(SYSTEM, WARNING, TEXT, ACTION, INVALID)
    annotation class AVRoomMessageTypeDef

    object AVRoomSystemMessageSubtype {
        const val WELCOME = "welcome"
        const val CONGRATULATION = "congratulation"
        const val PITY = "pity"
        const val GIFT = "gift"
        const val FOLLOW = "follow"
        const val INVITE_MANAGER = "invite_manager"
        const val RELIEVE_MANAGER = "relieve_manager"
        const val HTML = "html"
        const val INVALID = ""

        @StringDef(WELCOME, CONGRATULATION, PITY, HTML, GIFT, INVALID, INVITE_MANAGER, RELIEVE_MANAGER)
        annotation class AVRoomSystemMessageSubtypeDef
    }

    object AVRoomMessageActionSubtype {
        const val APPLY_POSITION = "apply_position"
        const val CANCEL_APPLY_POSITION = "cancel_apply_position"
        const val PROCESS_APPLY = "process_apply"
        const val OPEN_MIC = "open_mic"
        const val CLOSE_MIC = "close_mic"
        const val CLOSE_ROOM = "close_room"
        const val KICK_OUT = "kick_out"
        const val STAND_UP = "stand_up"
        const val INVITE = "invite"
        const val FOLLOW = "follow"
        const val INVITE_MANAGER = "invite_manager"
        const val RELIEVE_MANAGER = "relieve_manager"
        const val CHANGE_ROOM_TYPE = "change_room_type"
        const val CHANGE_GAME_STATUS = "change_game_status"
        const val INVALID = ""

        @StringDef(APPLY_POSITION, CANCEL_APPLY_POSITION, PROCESS_APPLY, OPEN_MIC, CLOSE_MIC, KICK_OUT, STAND_UP, INVITE,
                CHANGE_ROOM_TYPE, CHANGE_GAME_STATUS, CLOSE_ROOM, INVALID, INVITE_MANAGER, RELIEVE_MANAGER)
        annotation class AVRoomMessageActionDef
    }
}